cmake_minimum_required (VERSION 2.6...3.10.2)
project (CGenerator)

cmake_policy(SET CMP0063 NEW)

set(CMAKE_C_VISIBILITY_PRESET default)
set(CMAKE_CXX_VISIBILITY_PRESET default)
set(CMAKE_VISIBILITY_INLINES_HIDDEN OFF)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

option(BUILD_SHARED_LIBS "Build using shared libraries" ON)

find_package(OpenSSL)

if (OPENSSL_FOUND)
    message (STATUS "OPENSSL found")

    set(CMAKE_C_FLAGS "-DOPENSSL")
    if(CMAKE_VERSION VERSION_LESS 3.4)
        include_directories(${OPENSSL_INCLUDE_DIR})
        include_directories(${OPENSSL_INCLUDE_DIRS})
        link_directories(${OPENSSL_LIBRARIES})
    endif()

    message(STATUS "Using OpenSSL ${OPENSSL_VERSION}")
else()
    message (STATUS "OpenSSL Not found.")
endif()

set(pkgName "kubernetes")

# this default version can be overridden in PreTarget.cmake
set(PROJECT_VERSION_MAJOR 0)
set(PROJECT_VERSION_MINOR 0)
set(PROJECT_VERSION_PATCH 1)

if( (DEFINED CURL_INCLUDE_DIR) AND (DEFINED CURL_LIBRARIES))
    include_directories(${CURL_INCLUDE_DIR})
    set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} ${CURL_LIBRARIES} )
else()
    find_package(CURL 7.58.0 REQUIRED)
    if(CURL_FOUND)
        include_directories(${CURL_INCLUDE_DIR})
        set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} ${CURL_LIBRARIES} )
    else(CURL_FOUND)
        message(FATAL_ERROR "Could not find the CURL library and development files.")
    endif()
endif()

set(SRCS
    src/list.c
    src/apiKey.c
    src/apiClient.c
    src/binary.c
    external/cJSON.c
    model/object.c
    model/admissionregistration_v1_service_reference.c
    model/admissionregistration_v1_webhook_client_config.c
    model/apiextensions_v1_service_reference.c
    model/apiextensions_v1_webhook_client_config.c
    model/apiregistration_v1_service_reference.c
    model/authentication_v1_token_request.c
    model/core_v1_endpoint_port.c
    model/core_v1_event.c
    model/core_v1_event_list.c
    model/core_v1_event_series.c
    model/discovery_v1_endpoint_port.c
    model/events_v1_event.c
    model/events_v1_event_list.c
    model/events_v1_event_series.c
    model/storage_v1_token_request.c
    model/v1_affinity.c
    model/v1_aggregation_rule.c
    model/v1_api_group.c
    model/v1_api_group_list.c
    model/v1_api_resource.c
    model/v1_api_resource_list.c
    model/v1_api_service.c
    model/v1_api_service_condition.c
    model/v1_api_service_list.c
    model/v1_api_service_spec.c
    model/v1_api_service_status.c
    model/v1_api_versions.c
    model/v1_attached_volume.c
    model/v1_aws_elastic_block_store_volume_source.c
    model/v1_azure_disk_volume_source.c
    model/v1_azure_file_persistent_volume_source.c
    model/v1_azure_file_volume_source.c
    model/v1_binding.c
    model/v1_bound_object_reference.c
    model/v1_capabilities.c
    model/v1_ceph_fs_persistent_volume_source.c
    model/v1_ceph_fs_volume_source.c
    model/v1_certificate_signing_request.c
    model/v1_certificate_signing_request_condition.c
    model/v1_certificate_signing_request_list.c
    model/v1_certificate_signing_request_spec.c
    model/v1_certificate_signing_request_status.c
    model/v1_cinder_persistent_volume_source.c
    model/v1_cinder_volume_source.c
    model/v1_claim_source.c
    model/v1_client_ip_config.c
    model/v1_cluster_role.c
    model/v1_cluster_role_binding.c
    model/v1_cluster_role_binding_list.c
    model/v1_cluster_role_list.c
    model/v1_component_condition.c
    model/v1_component_status.c
    model/v1_component_status_list.c
    model/v1_condition.c
    model/v1_config_map.c
    model/v1_config_map_env_source.c
    model/v1_config_map_key_selector.c
    model/v1_config_map_list.c
    model/v1_config_map_node_config_source.c
    model/v1_config_map_projection.c
    model/v1_config_map_volume_source.c
    model/v1_container.c
    model/v1_container_image.c
    model/v1_container_port.c
    model/v1_container_resize_policy.c
    model/v1_container_state.c
    model/v1_container_state_running.c
    model/v1_container_state_terminated.c
    model/v1_container_state_waiting.c
    model/v1_container_status.c
    model/v1_controller_revision.c
    model/v1_controller_revision_list.c
    model/v1_cron_job.c
    model/v1_cron_job_list.c
    model/v1_cron_job_spec.c
    model/v1_cron_job_status.c
    model/v1_cross_version_object_reference.c
    model/v1_csi_driver.c
    model/v1_csi_driver_list.c
    model/v1_csi_driver_spec.c
    model/v1_csi_node.c
    model/v1_csi_node_driver.c
    model/v1_csi_node_list.c
    model/v1_csi_node_spec.c
    model/v1_csi_persistent_volume_source.c
    model/v1_csi_storage_capacity.c
    model/v1_csi_storage_capacity_list.c
    model/v1_csi_volume_source.c
    model/v1_custom_resource_column_definition.c
    model/v1_custom_resource_conversion.c
    model/v1_custom_resource_definition.c
    model/v1_custom_resource_definition_condition.c
    model/v1_custom_resource_definition_list.c
    model/v1_custom_resource_definition_names.c
    model/v1_custom_resource_definition_spec.c
    model/v1_custom_resource_definition_status.c
    model/v1_custom_resource_definition_version.c
    model/v1_custom_resource_subresource_scale.c
    model/v1_custom_resource_subresources.c
    model/v1_custom_resource_validation.c
    model/v1_daemon_endpoint.c
    model/v1_daemon_set.c
    model/v1_daemon_set_condition.c
    model/v1_daemon_set_list.c
    model/v1_daemon_set_spec.c
    model/v1_daemon_set_status.c
    model/v1_daemon_set_update_strategy.c
    model/v1_delete_options.c
    model/v1_deployment.c
    model/v1_deployment_condition.c
    model/v1_deployment_list.c
    model/v1_deployment_spec.c
    model/v1_deployment_status.c
    model/v1_deployment_strategy.c
    model/v1_downward_api_projection.c
    model/v1_downward_api_volume_file.c
    model/v1_downward_api_volume_source.c
    model/v1_empty_dir_volume_source.c
    model/v1_endpoint.c
    model/v1_endpoint_address.c
    model/v1_endpoint_conditions.c
    model/v1_endpoint_hints.c
    model/v1_endpoint_slice.c
    model/v1_endpoint_slice_list.c
    model/v1_endpoint_subset.c
    model/v1_endpoints.c
    model/v1_endpoints_list.c
    model/v1_env_from_source.c
    model/v1_env_var.c
    model/v1_env_var_source.c
    model/v1_ephemeral_container.c
    model/v1_ephemeral_volume_source.c
    model/v1_event_source.c
    model/v1_eviction.c
    model/v1_exec_action.c
    model/v1_external_documentation.c
    model/v1_fc_volume_source.c
    model/v1_flex_persistent_volume_source.c
    model/v1_flex_volume_source.c
    model/v1_flocker_volume_source.c
    model/v1_for_zone.c
    model/v1_gce_persistent_disk_volume_source.c
    model/v1_git_repo_volume_source.c
    model/v1_glusterfs_persistent_volume_source.c
    model/v1_glusterfs_volume_source.c
    model/v1_group_version_for_discovery.c
    model/v1_grpc_action.c
    model/v1_horizontal_pod_autoscaler.c
    model/v1_horizontal_pod_autoscaler_list.c
    model/v1_horizontal_pod_autoscaler_spec.c
    model/v1_horizontal_pod_autoscaler_status.c
    model/v1_host_alias.c
    model/v1_host_ip.c
    model/v1_host_path_volume_source.c
    model/v1_http_get_action.c
    model/v1_http_header.c
    model/v1_http_ingress_path.c
    model/v1_http_ingress_rule_value.c
    model/v1_ingress.c
    model/v1_ingress_backend.c
    model/v1_ingress_class.c
    model/v1_ingress_class_list.c
    model/v1_ingress_class_parameters_reference.c
    model/v1_ingress_class_spec.c
    model/v1_ingress_list.c
    model/v1_ingress_load_balancer_ingress.c
    model/v1_ingress_load_balancer_status.c
    model/v1_ingress_port_status.c
    model/v1_ingress_rule.c
    model/v1_ingress_service_backend.c
    model/v1_ingress_spec.c
    model/v1_ingress_status.c
    model/v1_ingress_tls.c
    model/v1_ip_block.c
    model/v1_iscsi_persistent_volume_source.c
    model/v1_iscsi_volume_source.c
    model/v1_job.c
    model/v1_job_condition.c
    model/v1_job_list.c
    model/v1_job_spec.c
    model/v1_job_status.c
    model/v1_job_template_spec.c
    model/v1_json_schema_props.c
    model/v1_key_to_path.c
    model/v1_label_selector.c
    model/v1_label_selector_requirement.c
    model/v1_lease.c
    model/v1_lease_list.c
    model/v1_lease_spec.c
    model/v1_lifecycle.c
    model/v1_lifecycle_handler.c
    model/v1_limit_range.c
    model/v1_limit_range_item.c
    model/v1_limit_range_list.c
    model/v1_limit_range_spec.c
    model/v1_list_meta.c
    model/v1_load_balancer_ingress.c
    model/v1_load_balancer_status.c
    model/v1_local_object_reference.c
    model/v1_local_subject_access_review.c
    model/v1_local_volume_source.c
    model/v1_managed_fields_entry.c
    model/v1_match_condition.c
    model/v1_mutating_webhook.c
    model/v1_mutating_webhook_configuration.c
    model/v1_mutating_webhook_configuration_list.c
    model/v1_namespace.c
    model/v1_namespace_condition.c
    model/v1_namespace_list.c
    model/v1_namespace_spec.c
    model/v1_namespace_status.c
    model/v1_network_policy.c
    model/v1_network_policy_egress_rule.c
    model/v1_network_policy_ingress_rule.c
    model/v1_network_policy_list.c
    model/v1_network_policy_peer.c
    model/v1_network_policy_port.c
    model/v1_network_policy_spec.c
    model/v1_nfs_volume_source.c
    model/v1_node.c
    model/v1_node_address.c
    model/v1_node_affinity.c
    model/v1_node_condition.c
    model/v1_node_config_source.c
    model/v1_node_config_status.c
    model/v1_node_daemon_endpoints.c
    model/v1_node_list.c
    model/v1_node_selector.c
    model/v1_node_selector_requirement.c
    model/v1_node_selector_term.c
    model/v1_node_spec.c
    model/v1_node_status.c
    model/v1_node_system_info.c
    model/v1_non_resource_attributes.c
    model/v1_non_resource_rule.c
    model/v1_object_field_selector.c
    model/v1_object_meta.c
    model/v1_object_reference.c
    model/v1_overhead.c
    model/v1_owner_reference.c
    model/v1_persistent_volume.c
    model/v1_persistent_volume_claim.c
    model/v1_persistent_volume_claim_condition.c
    model/v1_persistent_volume_claim_list.c
    model/v1_persistent_volume_claim_spec.c
    model/v1_persistent_volume_claim_status.c
    model/v1_persistent_volume_claim_template.c
    model/v1_persistent_volume_claim_volume_source.c
    model/v1_persistent_volume_list.c
    model/v1_persistent_volume_spec.c
    model/v1_persistent_volume_status.c
    model/v1_photon_persistent_disk_volume_source.c
    model/v1_pod.c
    model/v1_pod_affinity.c
    model/v1_pod_affinity_term.c
    model/v1_pod_anti_affinity.c
    model/v1_pod_condition.c
    model/v1_pod_disruption_budget.c
    model/v1_pod_disruption_budget_list.c
    model/v1_pod_disruption_budget_spec.c
    model/v1_pod_disruption_budget_status.c
    model/v1_pod_dns_config.c
    model/v1_pod_dns_config_option.c
    model/v1_pod_failure_policy.c
    model/v1_pod_failure_policy_on_exit_codes_requirement.c
    model/v1_pod_failure_policy_on_pod_conditions_pattern.c
    model/v1_pod_failure_policy_rule.c
    model/v1_pod_ip.c
    model/v1_pod_list.c
    model/v1_pod_os.c
    model/v1_pod_readiness_gate.c
    model/v1_pod_resource_claim.c
    model/v1_pod_resource_claim_status.c
    model/v1_pod_scheduling_gate.c
    model/v1_pod_security_context.c
    model/v1_pod_spec.c
    model/v1_pod_status.c
    model/v1_pod_template.c
    model/v1_pod_template_list.c
    model/v1_pod_template_spec.c
    model/v1_policy_rule.c
    model/v1_port_status.c
    model/v1_portworx_volume_source.c
    model/v1_preconditions.c
    model/v1_preferred_scheduling_term.c
    model/v1_priority_class.c
    model/v1_priority_class_list.c
    model/v1_probe.c
    model/v1_projected_volume_source.c
    model/v1_quobyte_volume_source.c
    model/v1_rbd_persistent_volume_source.c
    model/v1_rbd_volume_source.c
    model/v1_replica_set.c
    model/v1_replica_set_condition.c
    model/v1_replica_set_list.c
    model/v1_replica_set_spec.c
    model/v1_replica_set_status.c
    model/v1_replication_controller.c
    model/v1_replication_controller_condition.c
    model/v1_replication_controller_list.c
    model/v1_replication_controller_spec.c
    model/v1_replication_controller_status.c
    model/v1_resource_attributes.c
    model/v1_resource_claim.c
    model/v1_resource_field_selector.c
    model/v1_resource_quota.c
    model/v1_resource_quota_list.c
    model/v1_resource_quota_spec.c
    model/v1_resource_quota_status.c
    model/v1_resource_requirements.c
    model/v1_resource_rule.c
    model/v1_role.c
    model/v1_role_binding.c
    model/v1_role_binding_list.c
    model/v1_role_list.c
    model/v1_role_ref.c
    model/v1_rolling_update_daemon_set.c
    model/v1_rolling_update_deployment.c
    model/v1_rolling_update_stateful_set_strategy.c
    model/v1_rule_with_operations.c
    model/v1_runtime_class.c
    model/v1_runtime_class_list.c
    model/v1_scale.c
    model/v1_scale_io_persistent_volume_source.c
    model/v1_scale_io_volume_source.c
    model/v1_scale_spec.c
    model/v1_scale_status.c
    model/v1_scheduling.c
    model/v1_scope_selector.c
    model/v1_scoped_resource_selector_requirement.c
    model/v1_se_linux_options.c
    model/v1_seccomp_profile.c
    model/v1_secret.c
    model/v1_secret_env_source.c
    model/v1_secret_key_selector.c
    model/v1_secret_list.c
    model/v1_secret_projection.c
    model/v1_secret_reference.c
    model/v1_secret_volume_source.c
    model/v1_security_context.c
    model/v1_self_subject_access_review.c
    model/v1_self_subject_access_review_spec.c
    model/v1_self_subject_review.c
    model/v1_self_subject_review_status.c
    model/v1_self_subject_rules_review.c
    model/v1_self_subject_rules_review_spec.c
    model/v1_server_address_by_client_cidr.c
    model/v1_service.c
    model/v1_service_account.c
    model/v1_service_account_list.c
    model/v1_service_account_token_projection.c
    model/v1_service_backend_port.c
    model/v1_service_list.c
    model/v1_service_port.c
    model/v1_service_spec.c
    model/v1_service_status.c
    model/v1_session_affinity_config.c
    model/v1_stateful_set.c
    model/v1_stateful_set_condition.c
    model/v1_stateful_set_list.c
    model/v1_stateful_set_ordinals.c
    model/v1_stateful_set_persistent_volume_claim_retention_policy.c
    model/v1_stateful_set_spec.c
    model/v1_stateful_set_status.c
    model/v1_stateful_set_update_strategy.c
    model/v1_status.c
    model/v1_status_cause.c
    model/v1_status_details.c
    model/v1_storage_class.c
    model/v1_storage_class_list.c
    model/v1_storage_os_persistent_volume_source.c
    model/v1_storage_os_volume_source.c
    model/v1_subject.c
    model/v1_subject_access_review.c
    model/v1_subject_access_review_spec.c
    model/v1_subject_access_review_status.c
    model/v1_subject_rules_review_status.c
    model/v1_sysctl.c
    model/v1_taint.c
    model/v1_tcp_socket_action.c
    model/v1_token_request_spec.c
    model/v1_token_request_status.c
    model/v1_token_review.c
    model/v1_token_review_spec.c
    model/v1_token_review_status.c
    model/v1_toleration.c
    model/v1_topology_selector_label_requirement.c
    model/v1_topology_selector_term.c
    model/v1_topology_spread_constraint.c
    model/v1_typed_local_object_reference.c
    model/v1_typed_object_reference.c
    model/v1_uncounted_terminated_pods.c
    model/v1_user_info.c
    model/v1_validating_webhook.c
    model/v1_validating_webhook_configuration.c
    model/v1_validating_webhook_configuration_list.c
    model/v1_validation_rule.c
    model/v1_volume.c
    model/v1_volume_attachment.c
    model/v1_volume_attachment_list.c
    model/v1_volume_attachment_source.c
    model/v1_volume_attachment_spec.c
    model/v1_volume_attachment_status.c
    model/v1_volume_device.c
    model/v1_volume_error.c
    model/v1_volume_mount.c
    model/v1_volume_node_affinity.c
    model/v1_volume_node_resources.c
    model/v1_volume_projection.c
    model/v1_vsphere_virtual_disk_volume_source.c
    model/v1_watch_event.c
    model/v1_webhook_conversion.c
    model/v1_weighted_pod_affinity_term.c
    model/v1_windows_security_context_options.c
    model/v1alpha1_audit_annotation.c
    model/v1alpha1_cluster_cidr.c
    model/v1alpha1_cluster_cidr_list.c
    model/v1alpha1_cluster_cidr_spec.c
    model/v1alpha1_cluster_trust_bundle.c
    model/v1alpha1_cluster_trust_bundle_list.c
    model/v1alpha1_cluster_trust_bundle_spec.c
    model/v1alpha1_expression_warning.c
    model/v1alpha1_ip_address.c
    model/v1alpha1_ip_address_list.c
    model/v1alpha1_ip_address_spec.c
    model/v1alpha1_match_condition.c
    model/v1alpha1_match_resources.c
    model/v1alpha1_named_rule_with_operations.c
    model/v1alpha1_param_kind.c
    model/v1alpha1_param_ref.c
    model/v1alpha1_parent_reference.c
    model/v1alpha1_self_subject_review.c
    model/v1alpha1_self_subject_review_status.c
    model/v1alpha1_server_storage_version.c
    model/v1alpha1_storage_version.c
    model/v1alpha1_storage_version_condition.c
    model/v1alpha1_storage_version_list.c
    model/v1alpha1_storage_version_status.c
    model/v1alpha1_type_checking.c
    model/v1alpha1_validating_admission_policy.c
    model/v1alpha1_validating_admission_policy_binding.c
    model/v1alpha1_validating_admission_policy_binding_list.c
    model/v1alpha1_validating_admission_policy_binding_spec.c
    model/v1alpha1_validating_admission_policy_list.c
    model/v1alpha1_validating_admission_policy_spec.c
    model/v1alpha1_validating_admission_policy_status.c
    model/v1alpha1_validation.c
    model/v1alpha1_variable.c
    model/v1alpha2_allocation_result.c
    model/v1alpha2_pod_scheduling_context.c
    model/v1alpha2_pod_scheduling_context_list.c
    model/v1alpha2_pod_scheduling_context_spec.c
    model/v1alpha2_pod_scheduling_context_status.c
    model/v1alpha2_resource_claim.c
    model/v1alpha2_resource_claim_consumer_reference.c
    model/v1alpha2_resource_claim_list.c
    model/v1alpha2_resource_claim_parameters_reference.c
    model/v1alpha2_resource_claim_scheduling_status.c
    model/v1alpha2_resource_claim_spec.c
    model/v1alpha2_resource_claim_status.c
    model/v1alpha2_resource_claim_template.c
    model/v1alpha2_resource_claim_template_list.c
    model/v1alpha2_resource_claim_template_spec.c
    model/v1alpha2_resource_class.c
    model/v1alpha2_resource_class_list.c
    model/v1alpha2_resource_class_parameters_reference.c
    model/v1alpha2_resource_handle.c
    model/v1beta1_audit_annotation.c
    model/v1beta1_expression_warning.c
    model/v1beta1_match_condition.c
    model/v1beta1_match_resources.c
    model/v1beta1_named_rule_with_operations.c
    model/v1beta1_param_kind.c
    model/v1beta1_param_ref.c
    model/v1beta1_self_subject_review.c
    model/v1beta1_self_subject_review_status.c
    model/v1beta1_type_checking.c
    model/v1beta1_validating_admission_policy.c
    model/v1beta1_validating_admission_policy_binding.c
    model/v1beta1_validating_admission_policy_binding_list.c
    model/v1beta1_validating_admission_policy_binding_spec.c
    model/v1beta1_validating_admission_policy_list.c
    model/v1beta1_validating_admission_policy_spec.c
    model/v1beta1_validating_admission_policy_status.c
    model/v1beta1_validation.c
    model/v1beta1_variable.c
    model/v1beta2_exempt_priority_level_configuration.c
    model/v1beta2_flow_distinguisher_method.c
    model/v1beta2_flow_schema.c
    model/v1beta2_flow_schema_condition.c
    model/v1beta2_flow_schema_list.c
    model/v1beta2_flow_schema_spec.c
    model/v1beta2_flow_schema_status.c
    model/v1beta2_group_subject.c
    model/v1beta2_limit_response.c
    model/v1beta2_limited_priority_level_configuration.c
    model/v1beta2_non_resource_policy_rule.c
    model/v1beta2_policy_rules_with_subjects.c
    model/v1beta2_priority_level_configuration.c
    model/v1beta2_priority_level_configuration_condition.c
    model/v1beta2_priority_level_configuration_list.c
    model/v1beta2_priority_level_configuration_reference.c
    model/v1beta2_priority_level_configuration_spec.c
    model/v1beta2_priority_level_configuration_status.c
    model/v1beta2_queuing_configuration.c
    model/v1beta2_resource_policy_rule.c
    model/v1beta2_service_account_subject.c
    model/v1beta2_subject.c
    model/v1beta2_user_subject.c
    model/v1beta3_exempt_priority_level_configuration.c
    model/v1beta3_flow_distinguisher_method.c
    model/v1beta3_flow_schema.c
    model/v1beta3_flow_schema_condition.c
    model/v1beta3_flow_schema_list.c
    model/v1beta3_flow_schema_spec.c
    model/v1beta3_flow_schema_status.c
    model/v1beta3_group_subject.c
    model/v1beta3_limit_response.c
    model/v1beta3_limited_priority_level_configuration.c
    model/v1beta3_non_resource_policy_rule.c
    model/v1beta3_policy_rules_with_subjects.c
    model/v1beta3_priority_level_configuration.c
    model/v1beta3_priority_level_configuration_condition.c
    model/v1beta3_priority_level_configuration_list.c
    model/v1beta3_priority_level_configuration_reference.c
    model/v1beta3_priority_level_configuration_spec.c
    model/v1beta3_priority_level_configuration_status.c
    model/v1beta3_queuing_configuration.c
    model/v1beta3_resource_policy_rule.c
    model/v1beta3_service_account_subject.c
    model/v1beta3_subject.c
    model/v1beta3_user_subject.c
    model/v2_container_resource_metric_source.c
    model/v2_container_resource_metric_status.c
    model/v2_cross_version_object_reference.c
    model/v2_external_metric_source.c
    model/v2_external_metric_status.c
    model/v2_horizontal_pod_autoscaler.c
    model/v2_horizontal_pod_autoscaler_behavior.c
    model/v2_horizontal_pod_autoscaler_condition.c
    model/v2_horizontal_pod_autoscaler_list.c
    model/v2_horizontal_pod_autoscaler_spec.c
    model/v2_horizontal_pod_autoscaler_status.c
    model/v2_hpa_scaling_policy.c
    model/v2_hpa_scaling_rules.c
    model/v2_metric_identifier.c
    model/v2_metric_spec.c
    model/v2_metric_status.c
    model/v2_metric_target.c
    model/v2_metric_value_status.c
    model/v2_object_metric_source.c
    model/v2_object_metric_status.c
    model/v2_pods_metric_source.c
    model/v2_pods_metric_status.c
    model/v2_resource_metric_source.c
    model/v2_resource_metric_status.c
    model/version_info.c
    api/AdmissionregistrationAPI.c
    api/AdmissionregistrationV1API.c
    api/AdmissionregistrationV1alpha1API.c
    api/AdmissionregistrationV1beta1API.c
    api/ApiextensionsAPI.c
    api/ApiextensionsV1API.c
    api/ApiregistrationAPI.c
    api/ApiregistrationV1API.c
    api/ApisAPI.c
    api/AppsAPI.c
    api/AppsV1API.c
    api/AuthenticationAPI.c
    api/AuthenticationV1API.c
    api/AuthenticationV1alpha1API.c
    api/AuthenticationV1beta1API.c
    api/AuthorizationAPI.c
    api/AuthorizationV1API.c
    api/AutoscalingAPI.c
    api/AutoscalingV1API.c
    api/AutoscalingV2API.c
    api/BatchAPI.c
    api/BatchV1API.c
    api/CertificatesAPI.c
    api/CertificatesV1API.c
    api/CertificatesV1alpha1API.c
    api/CoordinationAPI.c
    api/CoordinationV1API.c
    api/CoreAPI.c
    api/CoreV1API.c
    api/CustomObjectsAPI.c
    api/DiscoveryAPI.c
    api/DiscoveryV1API.c
    api/EventsAPI.c
    api/EventsV1API.c
    api/FlowcontrolApiserverAPI.c
    api/FlowcontrolApiserverV1beta2API.c
    api/FlowcontrolApiserverV1beta3API.c
    api/InternalApiserverAPI.c
    api/InternalApiserverV1alpha1API.c
    api/LogsAPI.c
    api/NetworkingAPI.c
    api/NetworkingV1API.c
    api/NetworkingV1alpha1API.c
    api/NodeAPI.c
    api/NodeV1API.c
    api/OpenidAPI.c
    api/PolicyAPI.c
    api/PolicyV1API.c
    api/RbacAuthorizationAPI.c
    api/RbacAuthorizationV1API.c
    api/ResourceAPI.c
    api/ResourceV1alpha2API.c
    api/SchedulingAPI.c
    api/SchedulingV1API.c
    api/StorageAPI.c
    api/StorageV1API.c
    api/VersionAPI.c
    api/WellKnownAPI.c

)

set(HDRS
    include/apiClient.h
    include/list.h
    include/binary.h
    include/keyValuePair.h
    external/cJSON.h
    model/object.h
    model/admissionregistration_v1_service_reference.h
    model/admissionregistration_v1_webhook_client_config.h
    model/apiextensions_v1_service_reference.h
    model/apiextensions_v1_webhook_client_config.h
    model/apiregistration_v1_service_reference.h
    model/authentication_v1_token_request.h
    model/core_v1_endpoint_port.h
    model/core_v1_event.h
    model/core_v1_event_list.h
    model/core_v1_event_series.h
    model/discovery_v1_endpoint_port.h
    model/events_v1_event.h
    model/events_v1_event_list.h
    model/events_v1_event_series.h
    model/storage_v1_token_request.h
    model/v1_affinity.h
    model/v1_aggregation_rule.h
    model/v1_api_group.h
    model/v1_api_group_list.h
    model/v1_api_resource.h
    model/v1_api_resource_list.h
    model/v1_api_service.h
    model/v1_api_service_condition.h
    model/v1_api_service_list.h
    model/v1_api_service_spec.h
    model/v1_api_service_status.h
    model/v1_api_versions.h
    model/v1_attached_volume.h
    model/v1_aws_elastic_block_store_volume_source.h
    model/v1_azure_disk_volume_source.h
    model/v1_azure_file_persistent_volume_source.h
    model/v1_azure_file_volume_source.h
    model/v1_binding.h
    model/v1_bound_object_reference.h
    model/v1_capabilities.h
    model/v1_ceph_fs_persistent_volume_source.h
    model/v1_ceph_fs_volume_source.h
    model/v1_certificate_signing_request.h
    model/v1_certificate_signing_request_condition.h
    model/v1_certificate_signing_request_list.h
    model/v1_certificate_signing_request_spec.h
    model/v1_certificate_signing_request_status.h
    model/v1_cinder_persistent_volume_source.h
    model/v1_cinder_volume_source.h
    model/v1_claim_source.h
    model/v1_client_ip_config.h
    model/v1_cluster_role.h
    model/v1_cluster_role_binding.h
    model/v1_cluster_role_binding_list.h
    model/v1_cluster_role_list.h
    model/v1_component_condition.h
    model/v1_component_status.h
    model/v1_component_status_list.h
    model/v1_condition.h
    model/v1_config_map.h
    model/v1_config_map_env_source.h
    model/v1_config_map_key_selector.h
    model/v1_config_map_list.h
    model/v1_config_map_node_config_source.h
    model/v1_config_map_projection.h
    model/v1_config_map_volume_source.h
    model/v1_container.h
    model/v1_container_image.h
    model/v1_container_port.h
    model/v1_container_resize_policy.h
    model/v1_container_state.h
    model/v1_container_state_running.h
    model/v1_container_state_terminated.h
    model/v1_container_state_waiting.h
    model/v1_container_status.h
    model/v1_controller_revision.h
    model/v1_controller_revision_list.h
    model/v1_cron_job.h
    model/v1_cron_job_list.h
    model/v1_cron_job_spec.h
    model/v1_cron_job_status.h
    model/v1_cross_version_object_reference.h
    model/v1_csi_driver.h
    model/v1_csi_driver_list.h
    model/v1_csi_driver_spec.h
    model/v1_csi_node.h
    model/v1_csi_node_driver.h
    model/v1_csi_node_list.h
    model/v1_csi_node_spec.h
    model/v1_csi_persistent_volume_source.h
    model/v1_csi_storage_capacity.h
    model/v1_csi_storage_capacity_list.h
    model/v1_csi_volume_source.h
    model/v1_custom_resource_column_definition.h
    model/v1_custom_resource_conversion.h
    model/v1_custom_resource_definition.h
    model/v1_custom_resource_definition_condition.h
    model/v1_custom_resource_definition_list.h
    model/v1_custom_resource_definition_names.h
    model/v1_custom_resource_definition_spec.h
    model/v1_custom_resource_definition_status.h
    model/v1_custom_resource_definition_version.h
    model/v1_custom_resource_subresource_scale.h
    model/v1_custom_resource_subresources.h
    model/v1_custom_resource_validation.h
    model/v1_daemon_endpoint.h
    model/v1_daemon_set.h
    model/v1_daemon_set_condition.h
    model/v1_daemon_set_list.h
    model/v1_daemon_set_spec.h
    model/v1_daemon_set_status.h
    model/v1_daemon_set_update_strategy.h
    model/v1_delete_options.h
    model/v1_deployment.h
    model/v1_deployment_condition.h
    model/v1_deployment_list.h
    model/v1_deployment_spec.h
    model/v1_deployment_status.h
    model/v1_deployment_strategy.h
    model/v1_downward_api_projection.h
    model/v1_downward_api_volume_file.h
    model/v1_downward_api_volume_source.h
    model/v1_empty_dir_volume_source.h
    model/v1_endpoint.h
    model/v1_endpoint_address.h
    model/v1_endpoint_conditions.h
    model/v1_endpoint_hints.h
    model/v1_endpoint_slice.h
    model/v1_endpoint_slice_list.h
    model/v1_endpoint_subset.h
    model/v1_endpoints.h
    model/v1_endpoints_list.h
    model/v1_env_from_source.h
    model/v1_env_var.h
    model/v1_env_var_source.h
    model/v1_ephemeral_container.h
    model/v1_ephemeral_volume_source.h
    model/v1_event_source.h
    model/v1_eviction.h
    model/v1_exec_action.h
    model/v1_external_documentation.h
    model/v1_fc_volume_source.h
    model/v1_flex_persistent_volume_source.h
    model/v1_flex_volume_source.h
    model/v1_flocker_volume_source.h
    model/v1_for_zone.h
    model/v1_gce_persistent_disk_volume_source.h
    model/v1_git_repo_volume_source.h
    model/v1_glusterfs_persistent_volume_source.h
    model/v1_glusterfs_volume_source.h
    model/v1_group_version_for_discovery.h
    model/v1_grpc_action.h
    model/v1_horizontal_pod_autoscaler.h
    model/v1_horizontal_pod_autoscaler_list.h
    model/v1_horizontal_pod_autoscaler_spec.h
    model/v1_horizontal_pod_autoscaler_status.h
    model/v1_host_alias.h
    model/v1_host_ip.h
    model/v1_host_path_volume_source.h
    model/v1_http_get_action.h
    model/v1_http_header.h
    model/v1_http_ingress_path.h
    model/v1_http_ingress_rule_value.h
    model/v1_ingress.h
    model/v1_ingress_backend.h
    model/v1_ingress_class.h
    model/v1_ingress_class_list.h
    model/v1_ingress_class_parameters_reference.h
    model/v1_ingress_class_spec.h
    model/v1_ingress_list.h
    model/v1_ingress_load_balancer_ingress.h
    model/v1_ingress_load_balancer_status.h
    model/v1_ingress_port_status.h
    model/v1_ingress_rule.h
    model/v1_ingress_service_backend.h
    model/v1_ingress_spec.h
    model/v1_ingress_status.h
    model/v1_ingress_tls.h
    model/v1_ip_block.h
    model/v1_iscsi_persistent_volume_source.h
    model/v1_iscsi_volume_source.h
    model/v1_job.h
    model/v1_job_condition.h
    model/v1_job_list.h
    model/v1_job_spec.h
    model/v1_job_status.h
    model/v1_job_template_spec.h
    model/v1_json_schema_props.h
    model/v1_key_to_path.h
    model/v1_label_selector.h
    model/v1_label_selector_requirement.h
    model/v1_lease.h
    model/v1_lease_list.h
    model/v1_lease_spec.h
    model/v1_lifecycle.h
    model/v1_lifecycle_handler.h
    model/v1_limit_range.h
    model/v1_limit_range_item.h
    model/v1_limit_range_list.h
    model/v1_limit_range_spec.h
    model/v1_list_meta.h
    model/v1_load_balancer_ingress.h
    model/v1_load_balancer_status.h
    model/v1_local_object_reference.h
    model/v1_local_subject_access_review.h
    model/v1_local_volume_source.h
    model/v1_managed_fields_entry.h
    model/v1_match_condition.h
    model/v1_mutating_webhook.h
    model/v1_mutating_webhook_configuration.h
    model/v1_mutating_webhook_configuration_list.h
    model/v1_namespace.h
    model/v1_namespace_condition.h
    model/v1_namespace_list.h
    model/v1_namespace_spec.h
    model/v1_namespace_status.h
    model/v1_network_policy.h
    model/v1_network_policy_egress_rule.h
    model/v1_network_policy_ingress_rule.h
    model/v1_network_policy_list.h
    model/v1_network_policy_peer.h
    model/v1_network_policy_port.h
    model/v1_network_policy_spec.h
    model/v1_nfs_volume_source.h
    model/v1_node.h
    model/v1_node_address.h
    model/v1_node_affinity.h
    model/v1_node_condition.h
    model/v1_node_config_source.h
    model/v1_node_config_status.h
    model/v1_node_daemon_endpoints.h
    model/v1_node_list.h
    model/v1_node_selector.h
    model/v1_node_selector_requirement.h
    model/v1_node_selector_term.h
    model/v1_node_spec.h
    model/v1_node_status.h
    model/v1_node_system_info.h
    model/v1_non_resource_attributes.h
    model/v1_non_resource_rule.h
    model/v1_object_field_selector.h
    model/v1_object_meta.h
    model/v1_object_reference.h
    model/v1_overhead.h
    model/v1_owner_reference.h
    model/v1_persistent_volume.h
    model/v1_persistent_volume_claim.h
    model/v1_persistent_volume_claim_condition.h
    model/v1_persistent_volume_claim_list.h
    model/v1_persistent_volume_claim_spec.h
    model/v1_persistent_volume_claim_status.h
    model/v1_persistent_volume_claim_template.h
    model/v1_persistent_volume_claim_volume_source.h
    model/v1_persistent_volume_list.h
    model/v1_persistent_volume_spec.h
    model/v1_persistent_volume_status.h
    model/v1_photon_persistent_disk_volume_source.h
    model/v1_pod.h
    model/v1_pod_affinity.h
    model/v1_pod_affinity_term.h
    model/v1_pod_anti_affinity.h
    model/v1_pod_condition.h
    model/v1_pod_disruption_budget.h
    model/v1_pod_disruption_budget_list.h
    model/v1_pod_disruption_budget_spec.h
    model/v1_pod_disruption_budget_status.h
    model/v1_pod_dns_config.h
    model/v1_pod_dns_config_option.h
    model/v1_pod_failure_policy.h
    model/v1_pod_failure_policy_on_exit_codes_requirement.h
    model/v1_pod_failure_policy_on_pod_conditions_pattern.h
    model/v1_pod_failure_policy_rule.h
    model/v1_pod_ip.h
    model/v1_pod_list.h
    model/v1_pod_os.h
    model/v1_pod_readiness_gate.h
    model/v1_pod_resource_claim.h
    model/v1_pod_resource_claim_status.h
    model/v1_pod_scheduling_gate.h
    model/v1_pod_security_context.h
    model/v1_pod_spec.h
    model/v1_pod_status.h
    model/v1_pod_template.h
    model/v1_pod_template_list.h
    model/v1_pod_template_spec.h
    model/v1_policy_rule.h
    model/v1_port_status.h
    model/v1_portworx_volume_source.h
    model/v1_preconditions.h
    model/v1_preferred_scheduling_term.h
    model/v1_priority_class.h
    model/v1_priority_class_list.h
    model/v1_probe.h
    model/v1_projected_volume_source.h
    model/v1_quobyte_volume_source.h
    model/v1_rbd_persistent_volume_source.h
    model/v1_rbd_volume_source.h
    model/v1_replica_set.h
    model/v1_replica_set_condition.h
    model/v1_replica_set_list.h
    model/v1_replica_set_spec.h
    model/v1_replica_set_status.h
    model/v1_replication_controller.h
    model/v1_replication_controller_condition.h
    model/v1_replication_controller_list.h
    model/v1_replication_controller_spec.h
    model/v1_replication_controller_status.h
    model/v1_resource_attributes.h
    model/v1_resource_claim.h
    model/v1_resource_field_selector.h
    model/v1_resource_quota.h
    model/v1_resource_quota_list.h
    model/v1_resource_quota_spec.h
    model/v1_resource_quota_status.h
    model/v1_resource_requirements.h
    model/v1_resource_rule.h
    model/v1_role.h
    model/v1_role_binding.h
    model/v1_role_binding_list.h
    model/v1_role_list.h
    model/v1_role_ref.h
    model/v1_rolling_update_daemon_set.h
    model/v1_rolling_update_deployment.h
    model/v1_rolling_update_stateful_set_strategy.h
    model/v1_rule_with_operations.h
    model/v1_runtime_class.h
    model/v1_runtime_class_list.h
    model/v1_scale.h
    model/v1_scale_io_persistent_volume_source.h
    model/v1_scale_io_volume_source.h
    model/v1_scale_spec.h
    model/v1_scale_status.h
    model/v1_scheduling.h
    model/v1_scope_selector.h
    model/v1_scoped_resource_selector_requirement.h
    model/v1_se_linux_options.h
    model/v1_seccomp_profile.h
    model/v1_secret.h
    model/v1_secret_env_source.h
    model/v1_secret_key_selector.h
    model/v1_secret_list.h
    model/v1_secret_projection.h
    model/v1_secret_reference.h
    model/v1_secret_volume_source.h
    model/v1_security_context.h
    model/v1_self_subject_access_review.h
    model/v1_self_subject_access_review_spec.h
    model/v1_self_subject_review.h
    model/v1_self_subject_review_status.h
    model/v1_self_subject_rules_review.h
    model/v1_self_subject_rules_review_spec.h
    model/v1_server_address_by_client_cidr.h
    model/v1_service.h
    model/v1_service_account.h
    model/v1_service_account_list.h
    model/v1_service_account_token_projection.h
    model/v1_service_backend_port.h
    model/v1_service_list.h
    model/v1_service_port.h
    model/v1_service_spec.h
    model/v1_service_status.h
    model/v1_session_affinity_config.h
    model/v1_stateful_set.h
    model/v1_stateful_set_condition.h
    model/v1_stateful_set_list.h
    model/v1_stateful_set_ordinals.h
    model/v1_stateful_set_persistent_volume_claim_retention_policy.h
    model/v1_stateful_set_spec.h
    model/v1_stateful_set_status.h
    model/v1_stateful_set_update_strategy.h
    model/v1_status.h
    model/v1_status_cause.h
    model/v1_status_details.h
    model/v1_storage_class.h
    model/v1_storage_class_list.h
    model/v1_storage_os_persistent_volume_source.h
    model/v1_storage_os_volume_source.h
    model/v1_subject.h
    model/v1_subject_access_review.h
    model/v1_subject_access_review_spec.h
    model/v1_subject_access_review_status.h
    model/v1_subject_rules_review_status.h
    model/v1_sysctl.h
    model/v1_taint.h
    model/v1_tcp_socket_action.h
    model/v1_token_request_spec.h
    model/v1_token_request_status.h
    model/v1_token_review.h
    model/v1_token_review_spec.h
    model/v1_token_review_status.h
    model/v1_toleration.h
    model/v1_topology_selector_label_requirement.h
    model/v1_topology_selector_term.h
    model/v1_topology_spread_constraint.h
    model/v1_typed_local_object_reference.h
    model/v1_typed_object_reference.h
    model/v1_uncounted_terminated_pods.h
    model/v1_user_info.h
    model/v1_validating_webhook.h
    model/v1_validating_webhook_configuration.h
    model/v1_validating_webhook_configuration_list.h
    model/v1_validation_rule.h
    model/v1_volume.h
    model/v1_volume_attachment.h
    model/v1_volume_attachment_list.h
    model/v1_volume_attachment_source.h
    model/v1_volume_attachment_spec.h
    model/v1_volume_attachment_status.h
    model/v1_volume_device.h
    model/v1_volume_error.h
    model/v1_volume_mount.h
    model/v1_volume_node_affinity.h
    model/v1_volume_node_resources.h
    model/v1_volume_projection.h
    model/v1_vsphere_virtual_disk_volume_source.h
    model/v1_watch_event.h
    model/v1_webhook_conversion.h
    model/v1_weighted_pod_affinity_term.h
    model/v1_windows_security_context_options.h
    model/v1alpha1_audit_annotation.h
    model/v1alpha1_cluster_cidr.h
    model/v1alpha1_cluster_cidr_list.h
    model/v1alpha1_cluster_cidr_spec.h
    model/v1alpha1_cluster_trust_bundle.h
    model/v1alpha1_cluster_trust_bundle_list.h
    model/v1alpha1_cluster_trust_bundle_spec.h
    model/v1alpha1_expression_warning.h
    model/v1alpha1_ip_address.h
    model/v1alpha1_ip_address_list.h
    model/v1alpha1_ip_address_spec.h
    model/v1alpha1_match_condition.h
    model/v1alpha1_match_resources.h
    model/v1alpha1_named_rule_with_operations.h
    model/v1alpha1_param_kind.h
    model/v1alpha1_param_ref.h
    model/v1alpha1_parent_reference.h
    model/v1alpha1_self_subject_review.h
    model/v1alpha1_self_subject_review_status.h
    model/v1alpha1_server_storage_version.h
    model/v1alpha1_storage_version.h
    model/v1alpha1_storage_version_condition.h
    model/v1alpha1_storage_version_list.h
    model/v1alpha1_storage_version_status.h
    model/v1alpha1_type_checking.h
    model/v1alpha1_validating_admission_policy.h
    model/v1alpha1_validating_admission_policy_binding.h
    model/v1alpha1_validating_admission_policy_binding_list.h
    model/v1alpha1_validating_admission_policy_binding_spec.h
    model/v1alpha1_validating_admission_policy_list.h
    model/v1alpha1_validating_admission_policy_spec.h
    model/v1alpha1_validating_admission_policy_status.h
    model/v1alpha1_validation.h
    model/v1alpha1_variable.h
    model/v1alpha2_allocation_result.h
    model/v1alpha2_pod_scheduling_context.h
    model/v1alpha2_pod_scheduling_context_list.h
    model/v1alpha2_pod_scheduling_context_spec.h
    model/v1alpha2_pod_scheduling_context_status.h
    model/v1alpha2_resource_claim.h
    model/v1alpha2_resource_claim_consumer_reference.h
    model/v1alpha2_resource_claim_list.h
    model/v1alpha2_resource_claim_parameters_reference.h
    model/v1alpha2_resource_claim_scheduling_status.h
    model/v1alpha2_resource_claim_spec.h
    model/v1alpha2_resource_claim_status.h
    model/v1alpha2_resource_claim_template.h
    model/v1alpha2_resource_claim_template_list.h
    model/v1alpha2_resource_claim_template_spec.h
    model/v1alpha2_resource_class.h
    model/v1alpha2_resource_class_list.h
    model/v1alpha2_resource_class_parameters_reference.h
    model/v1alpha2_resource_handle.h
    model/v1beta1_audit_annotation.h
    model/v1beta1_expression_warning.h
    model/v1beta1_match_condition.h
    model/v1beta1_match_resources.h
    model/v1beta1_named_rule_with_operations.h
    model/v1beta1_param_kind.h
    model/v1beta1_param_ref.h
    model/v1beta1_self_subject_review.h
    model/v1beta1_self_subject_review_status.h
    model/v1beta1_type_checking.h
    model/v1beta1_validating_admission_policy.h
    model/v1beta1_validating_admission_policy_binding.h
    model/v1beta1_validating_admission_policy_binding_list.h
    model/v1beta1_validating_admission_policy_binding_spec.h
    model/v1beta1_validating_admission_policy_list.h
    model/v1beta1_validating_admission_policy_spec.h
    model/v1beta1_validating_admission_policy_status.h
    model/v1beta1_validation.h
    model/v1beta1_variable.h
    model/v1beta2_exempt_priority_level_configuration.h
    model/v1beta2_flow_distinguisher_method.h
    model/v1beta2_flow_schema.h
    model/v1beta2_flow_schema_condition.h
    model/v1beta2_flow_schema_list.h
    model/v1beta2_flow_schema_spec.h
    model/v1beta2_flow_schema_status.h
    model/v1beta2_group_subject.h
    model/v1beta2_limit_response.h
    model/v1beta2_limited_priority_level_configuration.h
    model/v1beta2_non_resource_policy_rule.h
    model/v1beta2_policy_rules_with_subjects.h
    model/v1beta2_priority_level_configuration.h
    model/v1beta2_priority_level_configuration_condition.h
    model/v1beta2_priority_level_configuration_list.h
    model/v1beta2_priority_level_configuration_reference.h
    model/v1beta2_priority_level_configuration_spec.h
    model/v1beta2_priority_level_configuration_status.h
    model/v1beta2_queuing_configuration.h
    model/v1beta2_resource_policy_rule.h
    model/v1beta2_service_account_subject.h
    model/v1beta2_subject.h
    model/v1beta2_user_subject.h
    model/v1beta3_exempt_priority_level_configuration.h
    model/v1beta3_flow_distinguisher_method.h
    model/v1beta3_flow_schema.h
    model/v1beta3_flow_schema_condition.h
    model/v1beta3_flow_schema_list.h
    model/v1beta3_flow_schema_spec.h
    model/v1beta3_flow_schema_status.h
    model/v1beta3_group_subject.h
    model/v1beta3_limit_response.h
    model/v1beta3_limited_priority_level_configuration.h
    model/v1beta3_non_resource_policy_rule.h
    model/v1beta3_policy_rules_with_subjects.h
    model/v1beta3_priority_level_configuration.h
    model/v1beta3_priority_level_configuration_condition.h
    model/v1beta3_priority_level_configuration_list.h
    model/v1beta3_priority_level_configuration_reference.h
    model/v1beta3_priority_level_configuration_spec.h
    model/v1beta3_priority_level_configuration_status.h
    model/v1beta3_queuing_configuration.h
    model/v1beta3_resource_policy_rule.h
    model/v1beta3_service_account_subject.h
    model/v1beta3_subject.h
    model/v1beta3_user_subject.h
    model/v2_container_resource_metric_source.h
    model/v2_container_resource_metric_status.h
    model/v2_cross_version_object_reference.h
    model/v2_external_metric_source.h
    model/v2_external_metric_status.h
    model/v2_horizontal_pod_autoscaler.h
    model/v2_horizontal_pod_autoscaler_behavior.h
    model/v2_horizontal_pod_autoscaler_condition.h
    model/v2_horizontal_pod_autoscaler_list.h
    model/v2_horizontal_pod_autoscaler_spec.h
    model/v2_horizontal_pod_autoscaler_status.h
    model/v2_hpa_scaling_policy.h
    model/v2_hpa_scaling_rules.h
    model/v2_metric_identifier.h
    model/v2_metric_spec.h
    model/v2_metric_status.h
    model/v2_metric_target.h
    model/v2_metric_value_status.h
    model/v2_object_metric_source.h
    model/v2_object_metric_status.h
    model/v2_pods_metric_source.h
    model/v2_pods_metric_status.h
    model/v2_resource_metric_source.h
    model/v2_resource_metric_status.h
    model/version_info.h
    api/AdmissionregistrationAPI.h
    api/AdmissionregistrationV1API.h
    api/AdmissionregistrationV1alpha1API.h
    api/AdmissionregistrationV1beta1API.h
    api/ApiextensionsAPI.h
    api/ApiextensionsV1API.h
    api/ApiregistrationAPI.h
    api/ApiregistrationV1API.h
    api/ApisAPI.h
    api/AppsAPI.h
    api/AppsV1API.h
    api/AuthenticationAPI.h
    api/AuthenticationV1API.h
    api/AuthenticationV1alpha1API.h
    api/AuthenticationV1beta1API.h
    api/AuthorizationAPI.h
    api/AuthorizationV1API.h
    api/AutoscalingAPI.h
    api/AutoscalingV1API.h
    api/AutoscalingV2API.h
    api/BatchAPI.h
    api/BatchV1API.h
    api/CertificatesAPI.h
    api/CertificatesV1API.h
    api/CertificatesV1alpha1API.h
    api/CoordinationAPI.h
    api/CoordinationV1API.h
    api/CoreAPI.h
    api/CoreV1API.h
    api/CustomObjectsAPI.h
    api/DiscoveryAPI.h
    api/DiscoveryV1API.h
    api/EventsAPI.h
    api/EventsV1API.h
    api/FlowcontrolApiserverAPI.h
    api/FlowcontrolApiserverV1beta2API.h
    api/FlowcontrolApiserverV1beta3API.h
    api/InternalApiserverAPI.h
    api/InternalApiserverV1alpha1API.h
    api/LogsAPI.h
    api/NetworkingAPI.h
    api/NetworkingV1API.h
    api/NetworkingV1alpha1API.h
    api/NodeAPI.h
    api/NodeV1API.h
    api/OpenidAPI.h
    api/PolicyAPI.h
    api/PolicyV1API.h
    api/RbacAuthorizationAPI.h
    api/RbacAuthorizationV1API.h
    api/ResourceAPI.h
    api/ResourceV1alpha2API.h
    api/SchedulingAPI.h
    api/SchedulingV1API.h
    api/StorageAPI.h
    api/StorageV1API.h
    api/VersionAPI.h
    api/WellKnownAPI.h

)

include(PreTarget.cmake OPTIONAL)

set(PROJECT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")

# Add library with project file with project name as library name
add_library(${pkgName} ${SRCS} ${HDRS})
# Link dependent libraries
if(NOT CMAKE_VERSION VERSION_LESS 3.4)
    target_link_libraries(${pkgName} PRIVATE OpenSSL::SSL OpenSSL::Crypto)
endif()
target_link_libraries(${pkgName} PUBLIC ${CURL_LIBRARIES} )
target_include_directories(
    ${pkgName} PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
    $<INSTALL_INTERFACE:include>
)

include(PostTarget.cmake OPTIONAL)

# installation of libraries, headers, and config files
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in)
    install(TARGETS ${pkgName} DESTINATION lib)
else()
    include(GNUInstallDirs)
    install(TARGETS ${pkgName} DESTINATION lib EXPORT ${pkgName}Targets)

    foreach(HDR_FILE ${HDRS})
        get_filename_component(HDR_DIRECTORY ${HDR_FILE} DIRECTORY)
        get_filename_component(ABSOLUTE_HDR_DIRECTORY ${HDR_DIRECTORY} ABSOLUTE)
        file(RELATIVE_PATH RELATIVE_HDR_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${ABSOLUTE_HDR_DIRECTORY})
        install(FILES ${HDR_FILE} DESTINATION include/${pkgName}/${RELATIVE_HDR_PATH})
    endforeach()

    include(CMakePackageConfigHelpers)
    write_basic_package_version_file(
            "${CMAKE_CURRENT_BINARY_DIR}/${pkgName}/${pkgName}ConfigVersion.cmake"
            VERSION "${PROJECT_VERSION_STRING}"
            COMPATIBILITY AnyNewerVersion
    )

    export(EXPORT ${pkgName}Targets
            FILE "${CMAKE_CURRENT_BINARY_DIR}/${pkgName}/${pkgName}Targets.cmake"
            NAMESPACE ${pkgName}::
            )

    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
            "${CMAKE_CURRENT_BINARY_DIR}/${pkgName}/${pkgName}Config.cmake"
            @ONLY
            )

    set(ConfigPackageLocation lib/cmake/${pkgName})
    install(EXPORT ${pkgName}Targets
            FILE
            ${pkgName}Targets.cmake
            NAMESPACE
            ${pkgName}::
            DESTINATION
            ${ConfigPackageLocation}
            )
    install(
            FILES
            "${CMAKE_CURRENT_BINARY_DIR}/${pkgName}/${pkgName}Config.cmake"
            "${CMAKE_CURRENT_BINARY_DIR}/${pkgName}/${pkgName}ConfigVersion.cmake"
            DESTINATION
            ${ConfigPackageLocation}
    )
endif()

# make installation packages
include(Packing.cmake OPTIONAL)

# Setting file variables to null
set(SRCS "")
set(HDRS "")


## This section shows how to use the above compiled library to compile the source files
## set source files
#set(SRCS
#    unit-tests/manual-AdmissionregistrationAPI.c
#    unit-tests/manual-AdmissionregistrationV1API.c
#    unit-tests/manual-AdmissionregistrationV1alpha1API.c
#    unit-tests/manual-AdmissionregistrationV1beta1API.c
#    unit-tests/manual-ApiextensionsAPI.c
#    unit-tests/manual-ApiextensionsV1API.c
#    unit-tests/manual-ApiregistrationAPI.c
#    unit-tests/manual-ApiregistrationV1API.c
#    unit-tests/manual-ApisAPI.c
#    unit-tests/manual-AppsAPI.c
#    unit-tests/manual-AppsV1API.c
#    unit-tests/manual-AuthenticationAPI.c
#    unit-tests/manual-AuthenticationV1API.c
#    unit-tests/manual-AuthenticationV1alpha1API.c
#    unit-tests/manual-AuthenticationV1beta1API.c
#    unit-tests/manual-AuthorizationAPI.c
#    unit-tests/manual-AuthorizationV1API.c
#    unit-tests/manual-AutoscalingAPI.c
#    unit-tests/manual-AutoscalingV1API.c
#    unit-tests/manual-AutoscalingV2API.c
#    unit-tests/manual-BatchAPI.c
#    unit-tests/manual-BatchV1API.c
#    unit-tests/manual-CertificatesAPI.c
#    unit-tests/manual-CertificatesV1API.c
#    unit-tests/manual-CertificatesV1alpha1API.c
#    unit-tests/manual-CoordinationAPI.c
#    unit-tests/manual-CoordinationV1API.c
#    unit-tests/manual-CoreAPI.c
#    unit-tests/manual-CoreV1API.c
#    unit-tests/manual-CustomObjectsAPI.c
#    unit-tests/manual-DiscoveryAPI.c
#    unit-tests/manual-DiscoveryV1API.c
#    unit-tests/manual-EventsAPI.c
#    unit-tests/manual-EventsV1API.c
#    unit-tests/manual-FlowcontrolApiserverAPI.c
#    unit-tests/manual-FlowcontrolApiserverV1beta2API.c
#    unit-tests/manual-FlowcontrolApiserverV1beta3API.c
#    unit-tests/manual-InternalApiserverAPI.c
#    unit-tests/manual-InternalApiserverV1alpha1API.c
#    unit-tests/manual-LogsAPI.c
#    unit-tests/manual-NetworkingAPI.c
#    unit-tests/manual-NetworkingV1API.c
#    unit-tests/manual-NetworkingV1alpha1API.c
#    unit-tests/manual-NodeAPI.c
#    unit-tests/manual-NodeV1API.c
#    unit-tests/manual-OpenidAPI.c
#    unit-tests/manual-PolicyAPI.c
#    unit-tests/manual-PolicyV1API.c
#    unit-tests/manual-RbacAuthorizationAPI.c
#    unit-tests/manual-RbacAuthorizationV1API.c
#    unit-tests/manual-ResourceAPI.c
#    unit-tests/manual-ResourceV1alpha2API.c
#    unit-tests/manual-SchedulingAPI.c
#    unit-tests/manual-SchedulingV1API.c
#    unit-tests/manual-StorageAPI.c
#    unit-tests/manual-StorageV1API.c
#    unit-tests/manual-VersionAPI.c
#    unit-tests/manual-WellKnownAPI.c
#)

##set header files
#set(HDRS
#)

## loop over all files in SRCS variable
#foreach(SOURCE_FILE ${SRCS})
#    # Get only the file name from the file as add_executable does not support executable with slash("/")
#    get_filename_component(FILE_NAME_ONLY ${SOURCE_FILE} NAME_WE)
#    # Remove .c from the file name and set it as executable name
#    string( REPLACE ".c" "" EXECUTABLE_FILE ${FILE_NAME_ONLY})
#    # Add executable for every source file in  SRCS
#    add_executable(unit-${EXECUTABLE_FILE} ${SOURCE_FILE})
#    # Link above created library to executable and dependent library curl
#    target_link_libraries(unit-${EXECUTABLE_FILE} ${CURL_LIBRARIES} ${pkgName} )
#endforeach(SOURCE_FILE ${SRCS})
